# -*- coding: utf-8 -*-
"""
TencentBlueKing is pleased to support the open source community by making 蓝鲸智云-节点管理(BlueKing-BK-NODEMAN) available.
Copyright (C) 2017-2022 THL A29 Limited, a Tencent company. All rights reserved.
Licensed under the MIT License (the "License"); you may not use this file except in compliance with the License.
You may obtain a copy of the License at https://opensource.org/licenses/MIT
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
specific language governing permissions and limitations under the License.
"""
DEFAULT_AGENT_TEMPLATE_ENV = """
# 安装部署根目录
BK_GSE_HOME_DIR="/usr/local/gse/agent"

# 集群信息(BK_GSE_RUN_MODE为'agent'表示AGENT模式，'proxy'表示PROXY模式, 其他值当前默认以AGENT模式运行)
BK_GSE_RUN_MODE="agent"
BK_GSE_CLOUD_ID=0
BK_GSE_ZONE_ID="default"
BK_GSE_CITY_ID="default"

# 接入点相关配置(多endpoint使用逗号分隔)
## 非Proxy模式下将根据access endpoints进行动态接入
## Proxy模式下将基于access endpoints进行静态接入
BK_GSE_ENABLE_STATIC_ACCESS=false
BK_GSE_ACCESS_CLUSTER_ENDPOINTS="127.0.0.1:28668"
BK_GSE_ACCESS_DATA_ENDPOINTS="127.0.0.1:28625"
BK_GSE_ACCESS_FILE_ENDPOINTS="127.0.0.1:28925"

# AgentBase基础配置(TLS为Client侧证书用于和上级建立链接请求)
BK_GSE_AGENT_BASE_TLS_CA_FILE=""
BK_GSE_AGENT_BASE_TLS_CERT_FILE=""
BK_GSE_AGENT_BASE_TLS_KEY_FILE=""
BK_GSE_AGENT_BASE_TLS_PASSWORD_FILE=""
BK_GSE_AGENT_BASE_PROCESSOR_NUM=4
BK_GSE_AGENT_BASE_PROCESSOR_SIZE=4096

# Proxy相关配置(TLS为Server侧证书用于接受处理下级链接请求)
BK_GSE_PROXY_TLS_CA_FILE=""
BK_GSE_PROXY_TLS_CERT_FILE=""
BK_GSE_PROXY_TLS_KEY_FILE=""
BK_GSE_PROXY_TLS_PASSWORD_FILE=""
BK_GSE_PROXY_BIND_IP="::"
BK_GSE_PROXY_BIND_PORT=28668
BK_GSE_PROXY_THREAD_NUM=4

# Task相关配置
BK_GSE_TASK_PROC_EVENT_DATA_ID=1100008
BK_GSE_TASK_CONCURRENCE_COUNT=100
BK_GSE_TASK_QUEUE_WAIT_TIMEOUT_MS=5000
BK_GSE_TASK_EXECUTOR_QUEUE_SIZE=4096
BK_GSE_TASK_SCHEDULE_QUEUE_SIZE=4096
BK_GSE_TASK_HOST_CODE_PAGE_NAME="utf8"
BK_GSE_TASK_SCRIPT_FILE_CLEAN_BATCH_COUNT=100
BK_GSE_TASK_SCRIPT_FILE_CLEAN_STARTUP_CLOCK_TIME=0
BK_GSE_TASK_SCRIPT_FILE_EXPIRE_TIME_HOUR=72
BK_GSE_TASK_SCRIPT_FILE_PREFIX="bk_gse_script_"

# Data相关配置 (windows环境下需将BK_GSE_DATA_IPC设置为本地端口27000)
BK_GSE_DATA_IPC="${BK_GSE_HOME_DIR}/data/ipc.state.report"
BK_GSE_DATA_IPC_RECV_THREAD_NUM=4
BK_GSE_DATA_ENABLE_COMPRESSION=false

# File相关配置
BK_GSE_FILE_MAX_TRANSFER_SPEED_MB_PER_SEC=100
BK_GSE_FILE_MAX_TRANSFER_CONCURRENT_NUM=10

# 日志相关配置
BK_GSE_LOG_PATH="${BK_GSE_HOME_DIR}/logs"
BK_GSE_LOG_LEVEL="INFO"
BK_GSE_LOG_FILESIZE_MB=200
BK_GSE_LOG_FILENUM=10
BK_GSE_LOG_ROTATE=0
BK_GSE_LOG_FLUSH_INTERVAL_MS=100

# 自定义扩展配置
BK_GSE_EXTRA_CONFIG_DIRECTORY=""
"""

DEFAULT_PROXY_TEMPLATE_ENV = """
# 安装部署根目录
BK_GSE_HOME_DIR="/usr/local/gse/proxy"

# 集群信息
BK_GSE_CLOUD_ID=0

# 数据服务: 对接2.0 AGENT服务
BK_GSE_DATA_AGENT_TCP_BIND_IP="::"
BK_GSE_DATA_AGENT_TCP_BIND_PORT=28625
BK_GSE_DATA_AGENT_TCP_SERVER_THREAD_NUM=24
BK_GSE_DATA_AGENT_TCP_SERVER_MAX_MESSAGE_SIZE=10485760
BK_GSE_DATA_AGENT_TLS_CA_FILE=""
BK_GSE_DATA_AGENT_TLS_CERT_FILE=""
BK_GSE_DATA_AGENT_TLS_KEY_FILE=""
BK_GSE_DATA_AGENT_TLS_PASSWORD_FILE=""

# 数据服务: 数据转发对端服务
BK_GSE_DATA_PROXY_TLS_CA_FILE=""
BK_GSE_DATA_PROXY_TLS_CERT_FILE=""
BK_GSE_DATA_PROXY_TLS_KEY_FILE=""
BK_GSE_DATA_PROXY_TLS_PASSWORD_FILE=""
BK_GSE_DATA_PROXY_ENDPOINTS="127.0.0.1:28625"

# 数据服务: metric(healthz)采集配置
BK_GSE_DATA_METRIC_EXPORTER_BIND_IP="::"
BK_GSE_DATA_METRIC_EXPORTER_BIND_PORT=59402
BK_GSE_DATA_METRIC_EXPORTER_THREAD_NUM=8

# 文件服务: Agent侧接口相关配置
BK_GSE_FILE_AGENT_BIND_IP="::"
BK_GSE_FILE_AGENT_BIND_PORT=28925
BK_GSE_FILE_AGENT_BIND_PORT_V1=58925
BK_GSE_FILE_AGENT_ADVERTISE_IPV4="127.0.0.1"
BK_GSE_FILE_AGENT_ADVERTISE_IPV6="::1"
BK_GSE_FILE_AGENT_THREAD_NUM=24
BK_GSE_FILE_AGENT_TLS_CA_FILE=""
BK_GSE_FILE_AGENT_TLS_CERT_FILE=""
BK_GSE_FILE_AGENT_TLS_KEY_FILE=""
BK_GSE_FILE_AGENT_TLS_PASSWORD_FILE=""

# 文件服务: Bittorrent相关配置
BK_GSE_FILE_BITTORRENT_BIND_IP="::"
BK_GSE_FILE_BITTORRENT_BIND_PORT=10020
BK_GSE_FILE_BITTORRENT_TRACKER_BIND_PORT=10030
BK_GSE_FILE_BITTORRENT_SPEED_LIMIT_MB_PER_SEC=10000

# 文件服务: Topology相关配置
BK_GSE_FILE_TOPOLOGY_BIND_IP="::"
BK_GSE_FILE_TOPOLOGY_BIND_PORT=28930
BK_GSE_FILE_TOPOLOGY_THRIFT_BIND_PORT=58930
BK_GSE_FILE_TOPOLOGY_ADVERTISE_IP="127.0.0.1"
BK_GSE_FILE_TOPOLOGY_THREAD_NUM=4
BK_GSE_FILE_TOPOLOGY_TLS_CA_FILE=""
BK_GSE_FILE_TOPOLOGY_TLS_PASSWORD_FILE=""
BK_GSE_FILE_TOPOLOGY_TLS_SVR_CERT_FILE=""
BK_GSE_FILE_TOPOLOGY_TLS_SVR_KEY_FILE=""
BK_GSE_FILE_TOPOLOGY_TLS_CLI_CERT_FILE=""
BK_GSE_FILE_TOPOLOGY_TLS_CLI_KEY_FILE=""

# 文件服务: Proxy相关配置
BK_GSE_FILE_PROXY_UPSTREAM_IP="127.0.0.1"
BK_GSE_FILE_PROXY_UPSTREAM_PORT=28930
BK_GSE_FILE_PROXY_REPORT_IP="127.0.0.1"
BK_GSE_FILE_PROXY_REPORT_PORT=28930

# 文件服务: Cache文件缓存相关配置
BK_GSE_FILE_CACHE_DIRS="./file_cache"
BK_GSE_FILE_CACHE_EXPIRED_TIME_SEC=7200

# 文件服务: metric(healthz)采集配置
BK_GSE_FILE_METRIC_EXPORTER_BIND_IP="::"
BK_GSE_FILE_METRIC_EXPORTER_BIND_PORT=59404
BK_GSE_FILE_METRIC_EXPORTER_THREAD_NUM=8

# 日志保存路径
BK_GSE_LOG_PATH="${BK_GSE_HOME_DIR}/logs"
BK_GSE_LOG_LEVEL="INFO"
BK_GSE_LOG_FILESIZE_MB=200
BK_GSE_LOG_FILENUM=10
BK_GSE_LOG_ROTATE=0
BK_GSE_LOG_FLUSH_INTERVAL_MS=100
BK_GSE_CUSTOM_BOOL_VALUE=true
"""
